Recibo el error SQL Error [1525] [HY000]: Incorrect DATETIME value: '' al ejecutar la siguiente consulta:
SELECT * FROM mytable where date_time_column >=''La consulta estuvo funcionando durante los últimos meses y comenzó a dar el error anterior desde ayer.
Mi versión de MySQL es 8.0.17 .
Intenté ejecutar el código a través de versiones anteriores de mi código y sigo teniendo el mismo error. Incluso intentarlo en MySQL Workbench da el mismo error.
¿Qué cambios en la configuración de la base de datos habrían causado esto?
Parece que no está relacionado con los cambios de la base de datos en sí, pero algo cambió en la versión 8.0.16 con respecto a la comparación de los tipos DATETIME y TIMESTAMP con las strings . El comportamiento ya está documentado en el registro de cambios 8.0.16 de la siguiente manera:
Al comparar valores de
DATEcon cadenas constantes, MySQL primero intenta convertir la cadena en unaDATEy luego realizar la comparación. Cuando la conversión falló, MySQL ejecutó la comparación tratando laDATEcomo una cadena, lo que podría generar un comportamiento impredecible. Ahora, en tales casos, si falla la conversión de la cadena aDATE, la comparación falla conER_WRONG_VALUE. (Error #29025656)
Además, esto se informa como un error aquí .
PD: Su consulta funciona en mi antigua versión 5.7 de MySQL.
Para mí, el problema era que un DISPARADOR intentaría actualizar ese mismo campo después de cada actualización de una fila.
El disparador no usaría el formato correcto al hacer una comparación.